Signal-Processing Functions

Many of the common mathematical functions used in signal processing are built-in: sinusoids, exponentials, Bessel functions, etc. Other functions that are not built-in, and all the common signal-processing operators, are defined in the packages making up the context 4. We now examine them in more detail.


<#2907#>Table<#2907#>: <#2908#>Signal objects defined in <#101#>SignalProcessing`Support`<#101#>. For the syntax of <#102#>CPulse<#102#>, <#103#>Dirichlet<#103#>, <#104#>FIR<#104#>, <#105#>IIR<#105#>, <#106#>LineImpulse<#106#> and <#107#>Pulse<#107#>, consult the on-line documentation (e.g., <#108#>?CPulse<#108#>).<#2908#>
Object ;SPMnbsp; ;SPMnbsp; Meaning
CPulse ;SPMnbsp; ;SPMnbsp; continuous pulse:
;SPMnbsp; ;SPMnbsp; ;SPMnbsp; ~~~~#math201##tex2html_wrap_inline2817# (t) = #tex2html_wrap_inline2818##tex2html_wrap_inline2819#
CStep ;SPMnbsp; ;SPMnbsp; continuous step function:
;SPMnbsp; ;SPMnbsp; ;SPMnbsp; ~~~~#math202#u-1(t) = #tex2html_wrap_inline2821##tex2html_wrap_inline2822#
Delta ;SPMnbsp; ;SPMnbsp; Dirac delta function
Dirichlet ;SPMnbsp; ;SPMnbsp; Dirichlet discrete kernel:
;SPMnbsp; ;SPMnbsp; ;SPMnbsp; ~~~~#math203#d[N, ω] = #tex2html_wrap_indisplay2824#
;SPMnbsp; ;SPMnbsp; ;SPMnbsp; Also called the ASinc function
Impulse ;SPMnbsp; ;SPMnbsp; Kronecker delta function
LineImpulse ;SPMnbsp; ;SPMnbsp; m-D delta function, e.g. #math204#δ(t1 - t2)
Pulse ;SPMnbsp; ;SPMnbsp; discrete pulse:
;SPMnbsp; ;SPMnbsp; ;SPMnbsp; ~~~~#math205##tex2html_wrap_inline2827# [n] = #tex2html_wrap_inline2828##tex2html_wrap_inline2829#
Sinc ;SPMnbsp; ;SPMnbsp; #math206# sinc(t)≡sin(t)/t so #math207# sinc(0) = 1
Step ;SPMnbsp; ;SPMnbsp; discrete step function:
;SPMnbsp; ;SPMnbsp; ;SPMnbsp; ~~~~#math208#u[n] = #tex2html_wrap_inline2833##tex2html_wrap_inline2834#
Unit ;SPMnbsp; ;SPMnbsp; family of functions which
;SPMnbsp; ;SPMnbsp; ;SPMnbsp; includes CStep and Delta


Table 1 lists the twelve new functions. There are discrete and continuous versions of the impulse (5 and 6), step (7 and 8), and pulse functions (9 and 10). The family of unit functions 11 generalizes 12 and 13:~ u-1 is the continuous step function, #math209#u0 = δ is the Dirac delta, and uk is defined inductively by #math210#uk(t) = duk-1(t)/dt. For k≥ 0 these are really generalized functions, in the sense that they must be integrated with another function in order to give a number:~ thus the Dirac delta is defined by the condition #math211##tex2html_wrap_inline2916#δ(t)f (t) dt = f (0) for every function f. The multidimensional impulse function 14 is a generalization of the Dirac delta to several dimensions.

The function #math212#sinc#tex2html_wrap_inline2919#t = sin(t)/t (usually defined as #math213#sin(πt)/(πt)), and the related <#1154#>aliased sinc<#1154#> function, also known as the <#1155#>Dirichlet kernel<#1155#>, occur so commonly in signal processing that they deserve their own primitives, 15 and 16 (alternatively 17 or 18).

Finally, the finite and infinite impulse-response functions, 19 and 20 for digital filters and 21 and 22 for analog filters, are unique to the field of signal processing; they represent the impulse response of an all-pole filter (infinite in extent) and of an all-zero filter (finite in extent), respectively [Myers 1986]. For these objects, the first argument gives the variable, and the second is a list giving the gain and minus the feedback coefficients; for example, 23 represents a digital filter with a gain of 1/1 and feedback coefficients of #math214#- #tex2html_wrap_inline2922# and #math215#- #tex2html_wrap_inline2924#. This means that the filter's input response is the solution h[n] of the difference equation #math216#h[n] = δ[n] + #tex2html_wrap_inline2927#h[n - 1] + #tex2html_wrap_inline2928#h[n - 2], with #math217#h[- 1] = h[- 2] = 0. Likewise, the object 24 represents an analog filter that corresponds to the differential equation #math218#h(t) = δ(t) + #tex2html_wrap_inline2931#h'(t) + #tex2html_wrap_inline2932#h''(t) with h(t) ;SPMlt; 0 for t ;SPMlt; 0. CIIR and CFIR objects can also be specified in terms of their roots. For example, <#985#>CIIR[t, Roots -;SPMgt; <#120#>-1, -2, -3<#120#>]<#985#> yields <#986#>CIIR[t, <#121#>6, 11, 6, 1<#121#>]<#986#>--- the roots are embedded in the filter but not displayed. To see the entire data structure, use <#122#>FullForm<#122#>. Applying <#123#>TheFunction<#123#> to these filters will generate a time-domain function corresponding to their impulse response. Thus, the time-response of filters can be plotted using <#124#>SignalPlot<#124#> and <#125#>SequencePlot<#125#> for analog and digital filters, respectively.

An expression with head 25 or 26 can also be seen as the operator of convolution with the respective functions; that is, when 27 or 28 operate on a signal, the operation can be seen as the action of a filter with the specified zeros or poles. The filter can be analog or digital, depending on what it is applied to; for example, 29 represents the output of the filter described in the previous paragraph, when the input is anu[n]. This filter is digital only because of the presence of the discrete step function.